1. Field of the Invention
The present invention relates to multimedia communications. More particularly, the present invention relates to the efficient and reliable delivery of multimedia streams over a diverse computer network with dynamically variable bandwidth capacity.
2. Description of the Related Art
With the proliferation of connections to the internet by a rapidly growing number of users, the viability of the internet as a widely accepted medium of communication has increased correspondingly. Bandwidth requirements can vary significantly depending on the type of multimedia data being delivered. For example, a low resolution, low frame rate video telephone call may require only an ISDN connection, while a high resolution video broadcast of a live event to a large group of viewers may require the bandwidth of a T1 connection to the server. Hence, the ability to reliably and efficiently deliver multimedia data over a diverse computer network such as the internet is severely limited by the physical infrastructure and underlying transmission protocols of the network connection.
One problem is network route reliability. Because the internet was designed using redundant routes to compensate for any failures at the network and/or physical layer, reliability can be accomplished at the transport layer, e.g., TCP/IP. For example, if a packet is lost during transmission, the TCP transport layer waits for a predetermined timeout before automatically requesting a retransmission. As a result, in real-time applications, whenever packets are lost or delayed, wasteful automatic retransmission of the lost/delayed packets may occur after their respective usefulness have expired.
Another problem is the order of packet arrival. In networks such as the internet, in addition to the potential loss of packet(s) at the network/physical layer, at the network level, there is no guarantee that packets will arrive at the destination in the same order as they were transmitted. This further complicates the reliability problem because, the client computer now has to figure out if a "late" packet is simply lost or may arrive out of sequence later. Waiting too long before requesting a retransmission reduces the chance for a successful recovery, i.e., a successful timely retransmission of a lost packet, in a real-time application. On the other hand, not waiting long enough causes unnecessary (redundant) retransmissions.
In view of the foregoing, there are desired improved techniques for reliable and efficient transmission of multimedia streams to client(s) which efficiently utilizing the network resources available over a period of time.